<!DOCTYPE html>
<html>
  <head><meta name="generator" content="Hexo 3.8.0">
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  <meta name="description" content="fengzhaoyang&#39;s blog">
  <meta name="keyword" content="hexo-theme, vuejs">
  
  <link rel="shortcut icon" href="/css/images/logo.png">
  
  <title>
    
    fzy-blog
    
  </title>
  <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/tomorrow.min.css" rel="stylesheet">
  <link rel="stylesheet" href="/css/style.css">
  
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/geopattern/1.2.3/js/geopattern.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js"></script>
  
  <script src="/js/qrious.js"></script>
  
  
  
  
    <!-- MathJax support START -->
    <script type="text/x-mathjax-config">
      MathJax.Hub.Config({
        tex2jax: {
          inlineMath: [ ['$','$'], ["\\(","\\)"]  ],
          processEscapes: true,
          skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
        }
      });
    </script>

    <script type="text/x-mathjax-config">
      MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for (i=0; i < all.length; i += 1) {
          all[i].SourceElement().parentNode.className += ' has-jax';
        }
      });
    </script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    <!-- MathJax support END -->
  


</head>
<div class="wechat-share">
  <img src="/css/images/logo.png">
</div>
  <body>
    <header class="header fixed-header">
  <div class="header-container">
    <a class="home-link" href="/">
      <div class="logo"></div>
      <span>fzy-blog</span>
    </a>
    <ul class="right-list">
      
        <li class="list-item">
          
            <a href="/" class="item-link active">Home</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/tags/" class="item-link">Tags</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/archives/" class="item-link">Archives</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/project/" class="item-link">Projects</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/about/" class="item-link">About</a>
          
        </li>
      
    </ul>
    <div class="menu">
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </div>
    <div class="menu-mask">
      <ul class="menu-list">
        
          <li class="menu-item">
            
              <a href="/" class="menu-link mobile-active">Home</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/tags/" class="menu-link">Tags</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/archives/" class="menu-link">Archives</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/project/" class="menu-link">Projects</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/about/" class="menu-link">About</a>
            
          </li>
        
      </ul>
    </div>
  </div>
</header>

    <main class="app-body">
  
  <article class="article-card">
    <h2 class="article-head">
      <a href="/2019/05/24/Java8/Java8比AtomicLong更加高效的原子操作LogAdderLongAccumulator/">Java8 比 AtomicLong 更加高效的原子操作 LogAdder LongAccumulator</a>
    </h2>
    <p class="article-date">2019-05-24</p>
    
    
  <a href="/tags#Java8">
    <span class="tag-code">Java8</span>
  </a>

    
    <div class="article-summary">
      
      Java8 比 AtomicLong 更加高效的原子操作 LogAdder LongAccumulatorLongAdder LongAccumulator 用法实例如果程序内有高度的竞争，大量的线程访问同一个原子值，可以使用 LongAdder 和 LongAccumulator，这个类是 ...
      
    </div>
    <a class="more" href="/2019/05/24/Java8/Java8比AtomicLong更加高效的原子操作LogAdderLongAccumulator/">全文...</a>
  </article>
  
  <article class="article-card">
    <h2 class="article-head">
      <a href="/2019/05/24/Java8/Java8集合遍历/">Java8集合遍历</a>
    </h2>
    <p class="article-date">2019-05-24</p>
    
    
  <a href="/tags#Java8">
    <span class="tag-code">Java8</span>
  </a>

    
    <div class="article-summary">
      
      12345678910111213141516171819202122//遍历list：List&lt;String&gt; list = Arrays.asList("a","b","A","B");list.forEach(item -&gt; &#123;    System.out. ...
      
    </div>
    <a class="more" href="/2019/05/24/Java8/Java8集合遍历/">全文...</a>
  </article>
  
  <article class="article-card">
    <h2 class="article-head">
      <a href="/2019/05/24/Java8/Java8Optional作用与实例/">Java8 Optional 作用与实例</a>
    </h2>
    <p class="article-date">2019-05-24</p>
    
    
  <a href="/tags#Java8">
    <span class="tag-code">Java8</span>
  </a>

    
    <div class="article-summary">
      
      Java8 Optional 作用与实例Java 8 Optional 类Optional 着重为解决 java 的 NPE 问题是 Java8 提供的为了解决 null 安全问题的一个 API。善用 Optional 可以使我们代码中很多繁琐、丑陋的设计变得十分优雅。
1234567891 ...
      
    </div>
    <a class="more" href="/2019/05/24/Java8/Java8Optional作用与实例/">全文...</a>
  </article>
  
  <article class="article-card">
    <h2 class="article-head">
      <a href="/2019/05/24/Java8/java8Stream大数据量List分批处理切割/">java8 Stream 大数据量 List 分批处理切割</a>
    </h2>
    <p class="article-date">2019-05-24</p>
    
    
  <a href="/tags#Java8">
    <span class="tag-code">Java8</span>
  </a>

    
    <div class="article-summary">
      
      java8 Stream 大数据量 List 分批处理切割
java8 Stream 大数据量 List 分批处理

1234567891011121314151617181920212223242526//按每3个一组分割private static final Integer MAX_N ...
      
    </div>
    <a class="more" href="/2019/05/24/Java8/java8Stream大数据量List分批处理切割/">全文...</a>
  </article>
  
  <article class="article-card">
    <h2 class="article-head">
      <a href="/2019/05/24/Java8/java8LambdaStreamcollectCollectors常用详细实例/">java8 Lambda Stream collect Collectors 常用详细实例</a>
    </h2>
    <p class="article-date">2019-05-24</p>
    
    
  <a href="/tags#Java8">
    <span class="tag-code">Java8</span>
  </a>

    
    <div class="article-summary">
      
      java8 Lambda Stream collect Collectors 常用详细实例优雅的将一个对象的集合转化成另一个对象的集合
1234List&lt;OrderDetail&gt; orderDetailList = orderDetailService.listOrderDeta ...
      
    </div>
    <a class="more" href="/2019/05/24/Java8/java8LambdaStreamcollectCollectors常用详细实例/">全文...</a>
  </article>
  
  <article class="article-card">
    <h2 class="article-head">
      <a href="/2019/05/24/Java开源/Github最热门开源项目整理持续更新20190507/">Github 最热门开源项目整理持续更新 20190508</a>
    </h2>
    <p class="article-date">2019-05-24</p>
    
    
  <a href="/tags#Java开源">
    <span class="tag-code">Java开源</span>
  </a>

    
    <div class="article-summary">
      
      导航
数据库 | Spring Cloud | 组件 | 系统 | 监控 | 大数据 | Java 教程 | python | 算法 | AI | 前端 | android | 跨平台开发 | 开源工具教程 | 产品 | 大牛 | 参考

数据库20190301https://github. ...
      
    </div>
    <a class="more" href="/2019/05/24/Java开源/Github最热门开源项目整理持续更新20190507/">全文...</a>
  </article>
  
  <article class="article-card">
    <h2 class="article-head">
      <a href="/2019/05/24/Java8/java8LambdaStream常用详细实例/">java8 Lambda Stream 常用详细实例</a>
    </h2>
    <p class="article-date">2019-05-24</p>
    
    
  <a href="/tags#Java8">
    <span class="tag-code">Java8</span>
  </a>

    
    <div class="article-summary">
      
      在集合转换和遍历的时候，你还在使用 for 循环吗？for 循环缺点： 1.复杂转换 转换时赋值极易出现错误和 bug 2.遍历时，要写很多冗余代码。
综上所述： 1.是时候使用 java8 Lambda 表达式，Stream，Collect, Collectors 了 2.流式编程，函数编 ...
      
    </div>
    <a class="more" href="/2019/05/24/Java8/java8LambdaStream常用详细实例/">全文...</a>
  </article>
  
  <article class="article-card">
    <h2 class="article-head">
      <a href="/2019/05/24/Linux/CentOS卸载OpenJdk/">CentOS 卸载 OpenJdk</a>
    </h2>
    <p class="article-date">2019-05-24</p>
    
    
  <a href="/tags#Linux">
    <span class="tag-code">Linux</span>
  </a>

    
    <div class="article-summary">
      
      CentOS 卸载 OpenJdk安装好的 CentOS 会自带 OpenJdk,用命令 java -version ，会有下面的信息：
java version “1.6.0”OpenJDK Runtime Environment (build 1.6.0-b09)OpenJDK 64-B ...
      
    </div>
    <a class="more" href="/2019/05/24/Linux/CentOS卸载OpenJdk/">全文...</a>
  </article>
  
  <article class="article-card">
    <h2 class="article-head">
      <a href="/2019/05/24/Linux/CentOSshell脚本备份远程服务器文件/">CentOS shell 脚本 备份远程服务器文件</a>
    </h2>
    <p class="article-date">2019-05-24</p>
    
    
  <a href="/tags#Linux">
    <span class="tag-code">Linux</span>
  </a>

    
    <div class="article-summary">
      
      CentOS shell 脚本 备份远程服务器文件假设有两台服务器：
192.168.0.1 原服务器
192.168.0.2 备份服务器
实现功能：
把 192.168.0.1 上的/opt/test/cms/目录文件打包压缩备份到备份服务器上。
shell 脚本如下:
123456789 ...
      
    </div>
    <a class="more" href="/2019/05/24/Linux/CentOSshell脚本备份远程服务器文件/">全文...</a>
  </article>
  
  <article class="article-card">
    <h2 class="article-head">
      <a href="/2019/05/24/Linux/CentOSshell脚本部署应用/">CentOS shell 脚本 部署应用</a>
    </h2>
    <p class="article-date">2019-05-24</p>
    
    
  <a href="/tags#Linux">
    <span class="tag-code">Linux</span>
  </a>

    
    <div class="article-summary">
      
      CentOS shell 脚本 部署应用自动化部署脚本
12345678910111213AppName=bop-server-eurekaNow=`date "+%Y%m%d%H%M%S"`#判断进程是否存在，如果不存在就启动它如果存在就重启它PIDS=`ps -ef |grep $App ...
      
    </div>
    <a class="more" href="/2019/05/24/Linux/CentOSshell脚本部署应用/">全文...</a>
  </article>
  

  
  <div class="guide-pager">
  
    <a href="/"><span class="page-arrow">← </span>Prev</a>
  
  
    <a href="/page/3/">Next<span class="page-arrow"> →</span></a>
  
</div>
  
</main>
    <div class="scroll-top">
  <span class="arrow-icon"></span>
</div>
    <footer class="app-footer">
  <p class="copyright">
    &copy; 2019
  </p>
</footer>

<script>
  function async (u, c) {
    var d = document,
      t = 'script',
      o = d.createElement(t),
      s = d.getElementsByTagName(t)[0];
    o.src = u;
    if (c) {
      o.addEventListener('load', function (e) {
        c(null, e);
      }, false);
    }
    s.parentNode.insertBefore(o, s);
  }
</script>
<script>
  async ("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function () {
    FastClick.attach(document.body);
  })
</script>

<script>
  var hasLine = 'true';
  async ("//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js", function () {
    $('figure pre').each(function (i, block) {
      var figure = $(this).parents('figure');
      if (hasLine === 'false') {
        figure.find('.gutter').hide();
      }
      var lang = figure.attr('class').split(' ')[1] || 'code';
      var codeHtml = $(this).html();
      var codeTag = document.createElement('code');
      codeTag.className = lang;
      codeTag.innerHTML = codeHtml;
      $(this).attr('class', '').empty().html(codeTag);
      figure.attr('data-lang', lang.toUpperCase());
      hljs.highlightBlock(block);
    });
  })
</script>
<!-- Baidu Tongji -->

<script src="/js/script.js"></script>
  </body>
</html>